                   RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = panel)
> 
> # Calcular y mostrar VIF
> vif(modelo_vif)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 
      LA      RUV      ROA     TAMi      VRI 
3.153054 1.183472 1.381514 3.880002 1.155190 
> 
> # Cargar librerías necesarias
> library(plm)
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos logarítmicamente transformados
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Convertir a panel
> panel <- pdata.frame(datos, index = c("NIT", "Año"))
> 
> # Definir fórmula del modelo GMM en sistema con PAT como variable dependiente
> form_pat_sys <- PAT ~ lag(PAT, 1) + MEBITDA + PRO + LIQd + TAMa +
+   `ΔAct` + RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI | lag(PAT, 2:3)
> 
> # Ejecutar modelo GMM en sistema (System GMM), dos pasos, con instrumentos colapsados
> modelo_pat_sys <- pgmm(
+   formula = form_pat_sys,
+   data = panel,
+   effect = "individual",
+   model = "twosteps",
+   transformation = "ld",
+   collapse = TRUE
+ )
> 
> # Mostrar resumen del modelo
> summary(modelo_pat_sys)
Oneway (individual) effect Two-steps model System GMM 

Call:
pgmm(formula = form_pat_sys, data = panel, effect = "individual", 
    model = "twosteps", collapse = TRUE, transformation = "ld")

Balanced Panel: n = 95, T = 5, N = 475

Number of Observations Used: 665
Residuals:
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
-0.51419 -0.05921  0.01298  0.01063  0.08305  0.86536 

Coefficients:
               Estimate  Std. Error z-value  Pr(>|z|)    
lag(PAT, 1)  0.69262175  0.11116623  6.2305 4.649e-10 ***
MEBITDA      0.00751738  0.01342086  0.5601 0.5753929    
PRO         -1.16236496  0.31576879 -3.6811 0.0002323 ***
LIQd        -0.00213867  0.02299293 -0.0930 0.9258924    
TAMa         0.00995142  0.01865951  0.5333 0.5938146    
ΔAct         0.56977456  0.31335712  1.8183 0.0690196 .  
RDC          0.00069168  0.00039613  1.7461 0.0807935 .  
EA           0.00704998  0.09256362  0.0762 0.9392889    
GIA          0.06300409  0.02008059  3.1376 0.0017036 ** 
LA           0.15332198  0.09841103  1.5580 0.1192390    
RUV          0.01438257  0.02203020  0.6529 0.5138485    
ROA         -0.81253318  0.75470778 -1.0766 0.2816502    
TAMi        -0.00376969  0.01783186 -0.2114 0.8325735    
VRI         -0.00206859  0.00231103 -0.8951 0.3707353    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sargan test: chisq(15) = 27.43508 (p-value = 0.025385)
Autocorrelation test (1): normal = -3.107496 (p-value = 0.0018868)
Autocorrelation test (2): normal = 1.151607 (p-value = 0.24948)
Wald test for coefficients: chisq(14) = 3740.896 (p-value = < 2.22e-16)
> 
> # ----- Cálculo del VIF -----
> modelo_vif <- lm(PAT ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` + 
+                    RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = panel)
> 
> # Calcular y mostrar VIF
> vif(modelo_vif)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 
      LA      RUV      ROA     TAMi      VRI 
3.153054 1.183472 1.381514 3.880002 1.155190 
> 
> # Cargar librerías necesarias
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> library(tseries)  # Para Jarque-Bera y Dickey-Fuller
Error en library(tseries): no hay paquete llamado ‘tseries’

> install.packages("tseries")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
also installing the dependencies ‘xts’, ‘TTR’, ‘quadprog’, ‘quantmod’
probando la URL 'https://cran.rstudio.com/bin/windows/contrib/4.5/xts_0.14.1.zip'
probando la URL 'https://cran.rstudio.com/bin/windows/contrib/4.5/TTR_0.24.4.zip'
probando la URL 'https://cran.rstudio.com/bin/windows/contrib/4.5/quadprog_1.5-8.zip'
probando la URL 'https://cran.rstudio.com/bin/windows/contrib/4.5/quantmod_0.4.27.zip'
probando la URL 'https://cran.rstudio.com/bin/windows/contrib/4.5/tseries_0.10-58.zip'
package ‘xts’ successfully unpacked and MD5 sums checked
package ‘TTR’ successfully unpacked and MD5 sums checked
package ‘quadprog’ successfully unpacked and MD5 sums checked
package ‘quantmod’ successfully unpacked and MD5 sums checked
package ‘tseries’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
	C:\Users\ACER\AppData\Local\Temp\RtmpyKEjAE\downloaded_packages
> 
> # Cargar librerías necesarias
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> library(tseries)  # Para Jarque-Bera y Dickey-Fuller
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 

    ‘tseries’ version: 0.10-58

    ‘tseries’ is a package for time series analysis and computational
    finance.

    See ‘library(help="tseries")’ for details.
> library(plm)
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Estimar modelo OLS con variable dependiente DT
> modelo_ols <- lm(DT ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` +
+                      RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = datos)
> 
> # Mostrar resumen del modelo
> summary(modelo_ols)

Call:
lm(formula = DT ~ MEBITDA + PRO + LIQd + TAMa + ΔAct + RDC + 
    EA + GIA + LA + RUV + ROA + TAMi + VRI, data = datos)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.47569 -0.14794 -0.02403  0.13494  1.17529 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.518e-02  1.586e-01   0.222  0.82456    
MEBITDA      5.668e-03  1.012e-02   0.560  0.57583    
PRO          2.621e+00  2.023e-01  12.954  < 2e-16 ***
LIQd        -9.333e-03  2.323e-02  -0.402  0.68807    
TAMa        -1.062e-02  1.642e-02  -0.646  0.51831    
ΔAct        -6.205e-01  2.045e-01  -3.034  0.00255 ** 
RDC         -4.119e-05  6.608e-05  -0.623  0.53342    
EA           3.721e-02  6.896e-02   0.540  0.58975    
GIA         -7.243e-02  2.646e-02  -2.737  0.00643 ** 
LA          -1.511e-01  7.338e-02  -2.059  0.04008 *  
RUV          2.790e-02  3.189e-02   0.875  0.38207    
ROA          5.299e-01  3.555e-01   1.491  0.13678    
TAMi         3.856e-02  1.440e-02   2.679  0.00766 ** 
VRI         -2.732e-03  4.483e-03  -0.609  0.54262    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2345 on 461 degrees of freedom
Multiple R-squared:  0.3482,	Adjusted R-squared:  0.3298 
F-statistic: 18.94 on 13 and 461 DF,  p-value: < 2.2e-16

> 
> # 1. Test de heterocedasticidad (Breusch-Pagan)
> bp_test <- bptest(modelo_ols)
> print(bp_test)

	studentized Breusch-Pagan test

data:  modelo_ols
BP = 24.531, df = 13, p-value = 0.02658

> 
> # 2. Test de multicolinealidad (VIF)
> vif_valores <- vif(modelo_ols)
> print(vif_valores)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 
      LA      RUV      ROA     TAMi      VRI 
3.153054 1.183472 1.381514 3.880002 1.155190 
> 
> # 3. Test de normalidad (Jarque-Bera) de los residuos
> jb_test <- jarque.bera.test(residuals(modelo_ols))
> print(jb_test)

	Jarque Bera Test

data:  residuals(modelo_ols)
X-squared = 438.09, df = 2, p-value < 2.2e-16

> 
> # 4. Test de especificación funcional (Ramsey RESET)
> reset_test <- resettest(modelo_ols, power = 2:3, type = "fitted")
> print(reset_test)

	RESET test

data:  modelo_ols
RESET = 0.87759, df1 = 2, df2 = 459, p-value = 0.4165

> 
> # 5. Test de estacionariedad (Dickey-Fuller) para la variable dependiente DT
> adf_test <- adf.test(datos$DT, alternative = "stationary")
Aviso:
In adf.test(datos$DT, alternative = "stationary") :
  p-value smaller than printed p-value
> print(adf_test)

	Augmented Dickey-Fuller Test

data:  datos$DT
Dickey-Fuller = -7.441, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

> 
> # Cargar librerías necesarias
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> library(tseries)
> library(plm)
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Estimar modelo OLS con variable dependiente DT
> modelo_ols <- lm(DT ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` +
+                      RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = datos)
> 
> # Mostrar resumen del modelo con errores estándar robustos (HC3)
> cat("=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===\n")
=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===
> print(coeftest(modelo_ols, vcov = vcovHC(modelo_ols, type = "HC3")))

t test of coefficients:

               Estimate  Std. Error t value Pr(>|t|)    
(Intercept)  3.5181e-02  1.5150e-01  0.2322  0.81647    
MEBITDA      5.6676e-03  4.4830e-02  0.1264  0.89945    
PRO          2.6209e+00  2.8597e-01  9.1649  < 2e-16 ***
LIQd        -9.3327e-03  3.1459e-02 -0.2967  0.76686    
TAMa        -1.0617e-02  3.0212e-02 -0.3514  0.72544    
ΔAct        -6.2047e-01  1.9885e-01 -3.1203  0.00192 ** 
RDC         -4.1186e-05  2.2091e-03 -0.0186  0.98513    
EA           3.7207e-02  7.5611e-02  0.4921  0.62290    
GIA         -7.2432e-02  2.6714e-02 -2.7114  0.00695 ** 
LA          -1.5107e-01  7.6970e-02 -1.9627  0.05029 .  
RUV          2.7898e-02  4.0196e-02  0.6940  0.48800    
ROA          5.2993e-01  6.4017e-01  0.8278  0.40821    
TAMi         3.8564e-02  2.9909e-02  1.2894  0.19791    
VRI         -2.7317e-03  4.7097e-03 -0.5800  0.56218    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> 
> # 1. Test de heterocedasticidad (Breusch-Pagan)
> cat("\n=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===\n")

=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===
> bp_test <- bptest(modelo_ols)
> print(bp_test)

	studentized Breusch-Pagan test

data:  modelo_ols
BP = 24.531, df = 13, p-value = 0.02658

> 
> # 2. Test de multicolinealidad (VIF)
> cat("\n=== TEST DE MULTICOLINEALIDAD (VIF) ===\n")

=== TEST DE MULTICOLINEALIDAD (VIF) ===
> vif_valores <- vif(modelo_ols)
> print(vif_valores)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 
      LA      RUV      ROA     TAMi      VRI 
3.153054 1.183472 1.381514 3.880002 1.155190 
> 
> # 3. Test de normalidad (Jarque-Bera) de los residuos
> cat("\n=== TEST DE NORMALIDAD (Jarque-Bera) ===\n")

=== TEST DE NORMALIDAD (Jarque-Bera) ===
> jb_test <- jarque.bera.test(residuals(modelo_ols))
> print(jb_test)

	Jarque Bera Test

data:  residuals(modelo_ols)
X-squared = 438.09, df = 2, p-value < 2.2e-16

> 
> # 4. Test de especificación funcional (Ramsey RESET)
> cat("\n=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===\n")

=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===
> reset_test <- resettest(modelo_ols, power = 2:3, type = "fitted")
> print(reset_test)

	RESET test

data:  modelo_ols
RESET = 0.87759, df1 = 2, df2 = 459, p-value = 0.4165

> 
> # 5. Test de estacionariedad (Dickey-Fuller) para la variable dependiente DT
> cat("\n=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===\n")

=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===
> adf_test <- adf.test(datos$DT, alternative = "stationary")
Aviso:
In adf.test(datos$DT, alternative = "stationary") :
  p-value smaller than printed p-value
> print(adf_test)

	Augmented Dickey-Fuller Test

data:  datos$DT
Dickey-Fuller = -7.441, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

> 
> savehistory("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Historia R GMM dt.Rhistory")
> save.image("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Ambiente de datos R GMM DT.RData")
> # Cargar librerías necesarias
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> library(tseries)
> library(plm)
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Estimar modelo OLS con variable dependiente DCP
> modelo_ols <- lm(DCP ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` +
+                      RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = datos)
> 
> # Mostrar resumen del modelo con errores estándar robustos (HC3)
> cat("=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===\n")
=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===
> print(coeftest(modelo_ols, vcov = vcovHC(modelo_ols, type = "HC3")))

t test of coefficients:

               Estimate  Std. Error t value  Pr(>|t|)    
(Intercept)  1.5458e-01  1.1711e-01  1.3199   0.18751    
MEBITDA      5.9029e-03  2.6747e-02  0.2207   0.82543    
PRO          1.6309e+00  2.0546e-01  7.9379 1.580e-14 ***
LIQd         2.0592e-02  2.3506e-02  0.8760   0.38146    
TAMa        -9.1872e-02  1.7451e-02 -5.2647 2.158e-07 ***
ΔAct        -3.0663e-01  1.3089e-01 -2.3427   0.01957 *  
RDC         -9.7699e-06  8.4558e-04 -0.0116   0.99079    
EA           7.7421e-02  4.5773e-02  1.6914   0.09144 .  
GIA         -1.9466e-02  1.8826e-02 -1.0340   0.30168    
LA           9.0353e-02  5.8210e-02  1.5522   0.12130    
RUV          1.8304e-03  2.9021e-02  0.0631   0.94974    
ROA          1.0576e+00  5.6301e-01  1.8785   0.06094 .  
TAMi         8.6776e-02  1.8168e-02  4.7763 2.402e-06 ***
VRI         -7.7897e-04  1.2458e-02 -0.0625   0.95017    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> 
> # 1. Test de heterocedasticidad (Breusch-Pagan)
> cat("\n=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===\n")

=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===
> bp_test <- bptest(modelo_ols)
> print(bp_test)

	studentized Breusch-Pagan test

data:  modelo_ols
BP = 27.615, df = 13, p-value = 0.01024

> 
> # 2. Test de multicolinealidad (VIF)
> cat("\n=== TEST DE MULTICOLINEALIDAD (VIF) ===\n")

=== TEST DE MULTICOLINEALIDAD (VIF) ===
> vif_valores <- vif(modelo_ols)
> print(vif_valores)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 
      LA      RUV      ROA     TAMi      VRI 
3.153054 1.183472 1.381514 3.880002 1.155190 
> 
> # 3. Test de normalidad (Jarque-Bera) de los residuos
> cat("\n=== TEST DE NORMALIDAD (Jarque-Bera) ===\n")

=== TEST DE NORMALIDAD (Jarque-Bera) ===
> jb_test <- jarque.bera.test(residuals(modelo_ols))
> print(jb_test)

	Jarque Bera Test

data:  residuals(modelo_ols)
X-squared = 747.84, df = 2, p-value < 2.2e-16

> 
> # 4. Test de especificación funcional (Ramsey RESET)
> cat("\n=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===\n")

=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===
> reset_test <- resettest(modelo_ols, power = 2:3, type = "fitted")
> print(reset_test)

	RESET test

data:  modelo_ols
RESET = 7.9617, df1 = 2, df2 = 459, p-value = 0.0003989

> 
> # 5. Test de estacionariedad (Dickey-Fuller) para la variable dependiente DCP
> cat("\n=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===\n")

=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===
> adf_test <- adf.test(datos$DCP, alternative = "stationary")
Aviso:
In adf.test(datos$DCP, alternative = "stationary") :
  p-value smaller than printed p-value
> print(adf_test)

	Augmented Dickey-Fuller Test

data:  datos$DCP
Dickey-Fuller = -6.4482, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

> 
> # Cargar librerías necesarias
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> library(tseries)
> library(plm)
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Estimar modelo OLS con variable dependiente DLP
> modelo_ols <- lm(DLP ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` +
+                      RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = datos)
> 
> # Mostrar resumen del modelo con errores estándar robustos (HC3)
> cat("=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===\n")
=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===
> print(coeftest(modelo_ols, vcov = vcovHC(modelo_ols, type = "HC3")))

t test of coefficients:

               Estimate  Std. Error t value  Pr(>|t|)    
(Intercept) -1.1940e-01  1.4499e-01 -0.8235 0.4106510    
MEBITDA     -2.3531e-04  1.8466e-02 -0.0127 0.9898383    
PRO          9.9001e-01  2.6199e-01  3.7788 0.0001782 ***
LIQd        -2.9925e-02  2.3296e-02 -1.2845 0.1996032    
TAMa         8.1255e-02  2.0864e-02  3.8944 0.0001130 ***
ΔAct        -3.1384e-01  1.8163e-01 -1.7279 0.0846678 .  
RDC         -3.1416e-05  3.0546e-03 -0.0103 0.9917983    
EA          -4.0214e-02  7.5592e-02 -0.5320 0.5949933    
GIA         -5.2966e-02  2.4213e-02 -2.1875 0.0292072 *  
LA          -2.4142e-01  7.2217e-02 -3.3430 0.0008964 ***
RUV          2.6068e-02  3.2472e-02  0.8028 0.4225169    
ROA         -5.2770e-01  4.3268e-01 -1.2196 0.2232314    
TAMi        -4.8212e-02  1.8342e-02 -2.6285 0.0088615 ** 
VRI         -1.9528e-03  8.2326e-03 -0.2372 0.8126081    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> 
> # 1. Test de heterocedasticidad (Breusch-Pagan)
> cat("\n=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===\n")

=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===
> bp_test <- bptest(modelo_ols)
> print(bp_test)

	studentized Breusch-Pagan test

data:  modelo_ols
BP = 42.284, df = 13, p-value = 5.885e-05

> 
> # 2. Test de multicolinealidad (VIF)
> cat("\n=== TEST DE MULTICOLINEALIDAD (VIF) ===\n")

=== TEST DE MULTICOLINEALIDAD (VIF) ===
> vif_valores <- vif(modelo_ols)
> print(vif_valores)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA       LA      RUV      ROA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 3.153054 1.183472 1.381514 
    TAMi      VRI 
3.880002 1.155190 
> 
> # 3. Test de normalidad (Jarque-Bera) de los residuos
> cat("\n=== TEST DE NORMALIDAD (Jarque-Bera) ===\n")

=== TEST DE NORMALIDAD (Jarque-Bera) ===
> jb_test <- jarque.bera.test(residuals(modelo_ols))
> print(jb_test)

	Jarque Bera Test

data:  residuals(modelo_ols)
X-squared = 550.71, df = 2, p-value < 2.2e-16

> 
> # 4. Test de especificación funcional (Ramsey RESET)
> cat("\n=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===\n")

=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===
> reset_test <- resettest(modelo_ols, power = 2:3, type = "fitted")
> print(reset_test)

	RESET test

data:  modelo_ols
RESET = 5.4555, df1 = 2, df2 = 459, p-value = 0.004554

> 
> # 5. Test de estacionariedad (Dickey-Fuller) para la variable dependiente DLP
> cat("\n=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===\n")

=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===
> adf_test <- adf.test(datos$DLP, alternative = "stationary")
Aviso:
In adf.test(datos$DLP, alternative = "stationary") :
  p-value smaller than printed p-value
> print(adf_test)

	Augmented Dickey-Fuller Test

data:  datos$DLP
Dickey-Fuller = -7.0782, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

> 
> # Cargar librerías necesarias
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> library(tseries)
> library(plm)
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Estimar modelo OLS con variable dependiente DF
> modelo_ols <- lm(DF ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` +
+                    RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = datos)
> 
> # Mostrar resumen del modelo con errores estándar robustos (HC3)
> cat("=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===\n")
=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===
> print(coeftest(modelo_ols, vcov = vcovHC(modelo_ols, type = "HC3")))

t test of coefficients:

               Estimate  Std. Error t value Pr(>|t|)   
(Intercept) -0.06245968  0.23512853 -0.2656 0.790635   
MEBITDA     -0.00569617  0.01849817 -0.3079 0.758274   
PRO         -0.56359768  0.30580882 -1.8430 0.065975 . 
LIQd         0.00935221  0.03299587  0.2834 0.776970   
TAMa        -0.00953387  0.02621559 -0.3637 0.716270   
ΔAct        -0.67539534  0.30417280 -2.2204 0.026875 * 
RDC         -0.00012194  0.00367500 -0.0332 0.973544   
EA           0.33123472  0.11130392  2.9759 0.003074 **
GIA         -0.06091504  0.04023063 -1.5141 0.130674   
LA          -0.14992212  0.10599474 -1.4144 0.157911   
RUV          0.02050525  0.05443511  0.3767 0.706576   
ROA          0.24245232  0.75218440  0.3223 0.747348   
TAMi         0.03616841  0.02275588  1.5894 0.112654   
VRI         -0.00081369  0.00477725 -0.1703 0.864828   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> 
> # 1. Test de heterocedasticidad (Breusch-Pagan)
> cat("\n=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===\n")

=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===
> bp_test <- bptest(modelo_ols)
> print(bp_test)

	studentized Breusch-Pagan test

data:  modelo_ols
BP = 59.158, df = 13, p-value = 7.428e-08

> 
> # 2. Test de multicolinealidad (VIF)
> cat("\n=== TEST DE MULTICOLINEALIDAD (VIF) ===\n")

=== TEST DE MULTICOLINEALIDAD (VIF) ===
> vif_valores <- vif(modelo_ols)
> print(vif_valores)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA       LA      RUV      ROA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 3.153054 1.183472 1.381514 
    TAMi      VRI 
3.880002 1.155190 
> 
> # 3. Test de normalidad (Jarque-Bera) de los residuos
> cat("\n=== TEST DE NORMALIDAD (Jarque-Bera) ===\n")

=== TEST DE NORMALIDAD (Jarque-Bera) ===
> jb_test <- jarque.bera.test(residuals(modelo_ols))
> print(jb_test)

	Jarque Bera Test

data:  residuals(modelo_ols)
X-squared = 56.613, df = 2, p-value = 5.09e-13

> 
> # 4. Test de especificación funcional (Ramsey RESET)
> cat("\n=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===\n")

=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===
> reset_test <- resettest(modelo_ols, power = 2:3, type = "fitted")
> print(reset_test)

	RESET test

data:  modelo_ols
RESET = 2.1632, df1 = 2, df2 = 459, p-value = 0.1161

> 
> # 5. Test de estacionariedad (Dickey-Fuller) para la variable dependiente DF
> cat("\n=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===\n")

=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===
> adf_test <- adf.test(datos$DF, alternative = "stationary")
Aviso:
In adf.test(datos$DF, alternative = "stationary") :
  p-value smaller than printed p-value
> print(adf_test)

	Augmented Dickey-Fuller Test

data:  datos$DF
Dickey-Fuller = -7.3275, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

> 
> # Cargar librerías necesarias 
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)
> library(tseries)
> library(plm)
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$TAMc <- as.factor(datos$TAMc)
> 
> # Estimar modelo OLS con variable dependiente PAT
> modelo_ols <- lm(PAT ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` +
+                      RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = datos)
> 
> # Mostrar resumen del modelo con errores estándar robustos (HC3)
> cat("=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===\n")
=== RESUMEN DEL MODELO CON ERRORES ROBUSTOS (HC3) ===
> print(coeftest(modelo_ols, vcov = vcovHC(modelo_ols, type = "HC3")))

t test of coefficients:

               Estimate  Std. Error t value  Pr(>|t|)    
(Intercept)  9.6482e-01  1.5150e-01  6.3685 4.623e-10 ***
MEBITDA     -5.6676e-03  4.4830e-02 -0.1264   0.89945    
PRO         -2.6209e+00  2.8597e-01 -9.1649 < 2.2e-16 ***
LIQd         9.3327e-03  3.1459e-02  0.2967   0.76686    
TAMa         1.0617e-02  3.0212e-02  0.3514   0.72544    
ΔAct         6.2047e-01  1.9885e-01  3.1203   0.00192 ** 
RDC          4.1186e-05  2.2091e-03  0.0186   0.98513    
EA          -3.7207e-02  7.5611e-02 -0.4921   0.62290    
GIA          7.2432e-02  2.6714e-02  2.7114   0.00695 ** 
LA           1.5107e-01  7.6970e-02  1.9627   0.05029 .  
RUV         -2.7898e-02  4.0196e-02 -0.6940   0.48800    
ROA         -5.2993e-01  6.4017e-01 -0.8278   0.40821    
TAMi        -3.8564e-02  2.9909e-02 -1.2894   0.19791    
VRI          2.7317e-03  4.7097e-03  0.5800   0.56218    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> 
> # 1. Test de heterocedasticidad (Breusch-Pagan)
> cat("\n=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===\n")

=== TEST DE HETEROCEDASTICIDAD (Breusch-Pagan) ===
> bp_test <- bptest(modelo_ols)
> print(bp_test)

	studentized Breusch-Pagan test

data:  modelo_ols
BP = 24.531, df = 13, p-value = 0.02658

> 
> # 2. Test de multicolinealidad (VIF)
> cat("\n=== TEST DE MULTICOLINEALIDAD (VIF) ===\n")

=== TEST DE MULTICOLINEALIDAD (VIF) ===
> vif_valores <- vif(modelo_ols)
> print(vif_valores)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA       LA      RUV      ROA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 3.153054 1.183472 1.381514 
    TAMi      VRI 
3.880002 1.155190 
> 
> # 3. Test de normalidad (Jarque-Bera) de los residuos
> cat("\n=== TEST DE NORMALIDAD (Jarque-Bera) ===\n")

=== TEST DE NORMALIDAD (Jarque-Bera) ===
> jb_test <- jarque.bera.test(residuals(modelo_ols))
> print(jb_test)

	Jarque Bera Test

data:  residuals(modelo_ols)
X-squared = 438.09, df = 2, p-value < 2.2e-16

> 
> # 4. Test de especificación funcional (Ramsey RESET)
> cat("\n=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===\n")

=== TEST DE ESPECIFICACIÓN FUNCIONAL (RESET) ===
> reset_test <- resettest(modelo_ols, power = 2:3, type = "fitted")
> print(reset_test)

	RESET test

data:  modelo_ols
RESET = 0.87759, df1 = 2, df2 = 459, p-value = 0.4165

> 
> # 5. Test de estacionariedad (Dickey-Fuller) para la variable dependiente PAT
> cat("\n=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===\n")

=== TEST DE ESTACIONARIEDAD (Dickey-Fuller) ===
> adf_test <- adf.test(datos$PAT, alternative = "stationary")
Aviso:
In adf.test(datos$PAT, alternative = "stationary") :
  p-value smaller than printed p-value
> print(adf_test)

	Augmented Dickey-Fuller Test

data:  datos$PAT
Dickey-Fuller = -7.441, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary

> 
> savehistory("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Historia R GMM dt.Rhistory")
> save.image("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Ambiente de datos R GMM DT.RData")
> savehistory("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Historia R GMM dt.Rhistory")
> save.image("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Ambiente de datos R GMM DT.RData")
> # Cargar librerías necesarias
> library(plm)
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)  # Para calcular VIF
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos logarítmicamente transformados
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Filtrar variables relevantes y convertir a panel
> panel <- pdata.frame(datos, index = c("NIT", "Año"))
> 
> # Definir fórmula del modelo GMM con DT como variable dependiente
> form_dt <- DT ~ lag(DT, 1) + MEBITDA + PRO + LIQd + TAMa +
+     `ΔAct` + RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI | lag(DT, 2:3)
> 
> # Ejecutar modelo GMM (diferencias, dos pasos)
> modelo_dt <- pgmm(
+     formula = form_dt,
+     data = panel,
+     effect = "individual",
+     model = "twosteps",
+     transformation = "d"
+ )
> 
> # Mostrar resumen del modelo
> summary(modelo_dt)
Oneway (individual) effect Two-steps model Difference GMM 

Call:
pgmm(formula = form_dt, data = panel, effect = "individual", 
    model = "twosteps", transformation = "d")

Balanced Panel: n = 95, T = 5, N = 475

Number of Observations Used: 285
Residuals:
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
-0.413937 -0.063881 -0.004256 -0.006955  0.048316  0.277606 

Coefficients:
              Estimate  Std. Error z-value  Pr(>|z|)    
lag(DT, 1) -0.17068089  0.14815718 -1.1520    0.2493    
MEBITDA     0.00229988  0.01309401  0.1756    0.8606    
PRO         1.54235196  0.37767655  4.0838 4.431e-05 ***
LIQd        0.01194515  0.01935179  0.6173    0.5371    
TAMa       -0.05550967  0.06219424 -0.8925    0.3721    
ΔAct       -0.13930859  0.15375415 -0.9060    0.3649    
RDC        -0.00033549  0.00024095 -1.3924    0.1638    
EA         -0.07283705  0.11677328 -0.6237    0.5328    
GIA        -0.02208655  0.01472695 -1.4997    0.1337    
LA         -0.12094846  0.15266924 -0.7922    0.4282    
RUV        -0.02510805  0.01909325 -1.3150    0.1885    
ROA         0.17658003  0.51287378  0.3443    0.7306    
TAMi       -0.01696600  0.01819585 -0.9324    0.3511    
VRI        -0.00010177  0.00171169 -0.0595    0.9526    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sargan test: chisq(4) = 24.35531 (p-value = 6.7787e-05)
Autocorrelation test (1): normal = 0.8803714 (p-value = 0.37866)
Autocorrelation test (2): normal = -0.5565566 (p-value = 0.57783)
Wald test for coefficients: chisq(14) = 114.5753 (p-value = < 2.22e-16)
> 
> # ----- Cálculo del VIF -----
> # Usar solo la parte de regresión (sin instrumentos)
> modelo_vif <- lm(DT ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` + 
+                      RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = panel)
> 
> # Calcular y mostrar VIF
> vif(modelo_vif)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA       LA      RUV      ROA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 3.153054 1.183472 1.381514 
    TAMi      VRI 
3.880002 1.155190 
> 
> # Cargar librerías necesarias
> library(plm)
> library(readxl)
> library(lmtest)
> library(sandwich)
> library(car)  # <- Añadido para VIF
> 
> # Establecer ruta del archivo Excel
> ruta <- "C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Base de datos renombrada final 18.05.2025.xlsx"
> 
> # Leer la hoja con los datos logarítmicamente transformados
> datos <- read_excel(ruta, sheet = "4. BD Comp Media resumida log")
> 
> # Convertir variables categóricas
> datos$Año <- as.numeric(datos$Año)
> datos$NIT <- as.factor(datos$NIT)
> datos$`TAMc` <- as.factor(datos$`TAMc`)
> 
> # Filtrar variables relevantes y convertir a panel
> panel <- pdata.frame(datos, index = c("NIT", "Año"))
> 
> # Definir fórmula del modelo GMM con DCP como variable dependiente
> form_dcp <- DCP ~ lag(DCP, 1) + MEBITDA + PRO + LIQd + TAMa +
+     `ΔAct` + RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI | lag(DCP, 2:3)
> 
> # Ejecutar modelo GMM (diferencias, dos pasos)
> modelo_dcp <- pgmm(
+     formula = form_dcp,
+     data = panel,
+     effect = "individual",
+     model = "twosteps",
+     transformation = "d"
+ )
> 
> # Mostrar resumen del modelo
> summary(modelo_dcp)
Oneway (individual) effect Two-steps model Difference GMM 

Call:
pgmm(formula = form_dcp, data = panel, effect = "individual", 
    model = "twosteps", transformation = "d")

Balanced Panel: n = 95, T = 5, N = 475

Number of Observations Used: 285
Residuals:
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
-1.124795 -0.059072  0.003862 -0.004082  0.076189  0.560671 

Coefficients:
               Estimate  Std. Error z-value  Pr(>|z|)    
lag(DCP, 1)  0.45956513  0.27990043  1.6419  0.100613    
MEBITDA      0.00612646  0.00955555  0.6411  0.521431    
PRO          1.76290994  0.40905279  4.3097 1.634e-05 ***
LIQd        -0.01608322  0.02058375 -0.7814  0.434594    
TAMa         0.07053554  0.05044835  1.3982  0.162061    
ΔAct        -0.61214360  0.22554249 -2.7141  0.006646 ** 
RDC          0.00079176  0.00045385  1.7445  0.081064 .  
EA          -0.05915873  0.12215044 -0.4843  0.628166    
GIA         -0.03137128  0.01834503 -1.7101  0.087253 .  
LA          -0.32075553  0.16319394 -1.9655  0.049358 *  
RUV         -0.03044207  0.03595158 -0.8468  0.397133    
ROA          1.71725860  0.71432449  2.4040  0.016215 *  
TAMi        -0.01374613  0.02006659 -0.6850  0.493328    
VRI          0.00535371  0.00369260  1.4498  0.147101    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sargan test: chisq(4) = 7.369842 (p-value = 0.11759)
Autocorrelation test (1): normal = -1.854639 (p-value = 0.063648)
Autocorrelation test (2): normal = 0.4286403 (p-value = 0.66819)
Wald test for coefficients: chisq(14) = 29.50497 (p-value = 0.0089229)
> 
> # ----- Cálculo del VIF -----
> # Usar solo la parte de regresión (sin instrumentos)
> modelo_vif <- lm(DCP ~ MEBITDA + PRO + LIQd + TAMa + `ΔAct` + 
+                      RDC + EA + GIA + LA + RUV + ROA + TAMi + VRI,
+                  data = panel)
> 
> # Calcular y mostrar VIF
> vif(modelo_vif)
 MEBITDA      PRO     LIQd     TAMa     ΔAct      RDC       EA      GIA       LA      RUV      ROA 
1.058166 1.268206 1.279658 4.403282 1.508087 1.021763 2.717711 1.473593 3.153054 1.183472 1.381514 
    TAMi      VRI 
3.880002 1.155190 
> 
> save.image("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Ambiente de datos R GMM DT.RData")
> savehistory("C:/Users/ACER/Desktop/EAFIT/proyecto de grado/Soportes/Regresiones Pyton/Tesis GMM R/Modelo GMM en R DT/Historia R GMM dt.Rhistory")
> 